package tree;

/**
 * @author kaho
 * @since 2021/2/25
 */
public class _112_路径总和 {


    /**
     * 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ，判断该树中是否存在 根节点到叶子节点 的路径，这条路径上所有节点值相加等于目标和 targetSum 。
     *
     * 叶子节点 是指没有子节点的节点。
     *
     *
     *
     * 来源：力扣（LeetCode）
     * 链接：https://leetcode-cn.com/problems/path-sum
     * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
     * @param root
     * @param targetSum
     * @return
     */
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null) {
            return false;
        }
        int val = root.val;
        int i = targetSum - val;
        if (i == 0 && root.left==null && root.right ==null) {
            return true;
        }
        boolean left = hasPathSum(root.left, i);
        boolean right = hasPathSum(root.right, i);
        return left || right;
    }
}
